Сохацький пише месенжер

Передісторія

Я свято вірю в те, що найбільший героїзм який може проявити людина у цьому житті — це виконувати свою роботу так, ніби від цьго залежить її життя. Це веде до безкомпромісної взаємодії зі своєю совістю і викарбовує справжню етику благородних. Тільки така безкомпромісність може стати актом творчості, яким є і має бути життя справжньої людини.

За свою карʼєру я бачив дуже мало безкомпромісних людей, а ви, хто читає цей текст, навряд чи бачили хоча б одну. Тільки спрага до максимальної точності, максимальної оптимальності, максимальної складності, максимальної унікальності, та максимальної застововуваності може народити прості та геніальні речі, про це я писав на сторінках своєї Четвертої Книги Сохацького — Топовий Програміст, яку видало Видавництво Аксіосис.

Озброєний такою мотивацію я почав карʼєру підприємця 10 років назад, відкинувши всякі можливості та перспективи співпраці з дебілами. За цей час я впровадив інформаційні системі в дві великі державні компанії, одна з яких забезпечує фінансову безпеку державти та працює на 30 мільйонів клієнтів онлайн на одному компʼютері, а інша відповідає за безпеку у сфері здійснення внутрішньої політики та поміщається на одній 3.5" дискеті 2.88МБ (як і банківська система).

На цьому шляху я бачив виключно ідіотів. Жодна людина з якою я співпрацював за ці 10 років не розуміла цієї мотивації, а хотіла лише швидше заробити 30 срібних і вийти успішно з бізнесу, так само як ракова клітина не розуміє, що експоненційний ріст її різноманітного і надзвичайно цікавого соціального середовища приведе до смерті організму. Жодна, я повторюю ще раз, жодна людина з ким я співпрацював за ці 10 років не виправдала моїх сподівань. Всі принесли мені глибоке розчарування в людях і людському єстві, і, аби якость розрадити такому становищу, я прийняв притулок в Буддизмі, Математиці та Гедонізмі, що прекрасно дозволяє прожити мої найкращі часи в надзвичайно складних умовах.

Через 10 років зневіри і розчарування в людській природі я вирішив повернутися до того з чого починав свою карʼєру підприємця — до чат месенжерів. Back to the roots, так би мовити. Саме тоді я вибрав Erlang/OTP і демонстрував всім стенди з 1 мільйоном повністю забитих конекшинів на одній ноді при загальному навантаженні в зеленій зоні 60%. Це і досі не перестає вражати. Інші так звані безкомпромісні люди, які хочуть шось будувати на Rust/C повинні 3 рази все добре поміряти і зважити перед тим, як починати викладати свою хуя на стіл. Я побудував 3 месенжера в Україні і один в Гонг-Конзі, то ж прийшов час побудувати пʼятий, останній месенжер, але на цей раз вже для себе і без дебілів.

Дивлячись на недлогугих ідіотів в Україні, які будують банківські системи та інформаційні системи захисту для ЗСУ на JavaScript я мимоволі уявляю їх в тюрмі і бажаю їм виключно цього, так як вважаю це злочином проти людства. Це моя внутрішня державна політика — я художник, я так бачу.

EDGE офіс

Почну з далекого, що таке Edge Office. Це замкнена інформаційна (по спарвжньому фулстек) система що дозволяє здійснювати операційну діяльність в умовах війни. Це власна система оходження і водопостачання, власна протипожарна система, власна електростанція, власний інтернет, власні потужності, власний R&D відділ, власна система віртуалізації, власна платформа, власні фреймворки, власна ERP система, власна операційна система, власні автоматчики які охороняють периметр. Такі офіси називаються EDGE офісами і дозволити собі таке може лише держава або великі нафтові та металургійні бізнеси. Це є основним ядром в якому треба рухатися тим, хто вважає себе політиками.

Великі підприємства та великі соціо-інформаційні системи включають не тільки людей та компʼютери, але і велику кількість мобільного обладнання, автопарки, роботів, і тому подібне, тому ядро кожної інформаційної ситсеми промислового масштабу потребує централізованого брокера, як це було описано ще дідами в CORBA яке здійнснює безпеку ABAC/RBAC/ACL згідно NIST A/B/C, ISO EAL 1-7, НД ТЗІ КЗЗ Г1-Г7. Відкритим залишається тільки питання інтернет-протоколів, які значно еволюціоновуали з часів CORBA, але одним зрозумілим для освіченої людини, яка вміє думати, повинно бути те, шо не можливо побудувати якісну систему, яка не відповідає ISO/IETF стандартам.

Моя компанія SYNRC завжди стояла на цих засадах і має постійний досвід демонстрації переваги над своїми конкурентами, її всі знають і поважають в світі, але бояться тому не пускають на ринки як Кена Сакамуру. В світлі цього я вирішив зосередитися на державних підприємства України, і зараз, оскільки і там немає поваги до розумних людей, я хочу віддати данину людству глообально у вигляді безкомпромісного месенжера, який повністю побудований на ISO/IETF стандартах і залишиться в віках як недосяжний ідеал технічно-неперевершених рішень.

В розумінні Сохацього месанжер повинен бути побудований як програмно-апартний комплекс, як колись Google продавала U1 блек-бокс юніти, які ти просто підключаєш до живлення і система готова для роботи. Ясно шо з огляду на ліцензійні умови розповсюдження, використання Linux тут не є можливим, тому такі системи, як PlayStation 3/4/5 будуються на системах BSD-сімейства. Я бачу чат месенжер SYNRC як продукт рівня PlayStation.

Рівень безпеки інтернету

Ще з часів TCP/IP (а зараз це HTTP/3) основною інфраструктурою, на якій будуються промислові комплекси вважається наступний набір платформо-утворюючих протоколів: 1) CA — X.509 PKI центр сертифікації ключів який відповідає вимогам PCI DSS та визначений у формальній нотації ASN.1; 2) LDAP — директорія підприємства (те що зараз називається Identity Services), зі своєю мовою пошуку та реляційним або KV бекендом, теж визначений у формалній нотації ASN.1 і здійснює єдиний спосіб обліку ресурсів та аутентифікації користувачів; 3) DNS/DNSSEC — рівень захисту імен підприємства, теж визначений у формальній нотації ASN.1.

Що стосується брокера, то промисловість зазнала значних пертурбацій і пройшла великий шлях від CORBA, XMPP, AMQP поки не досягла рівня MQTT. Я колись був зробив помилку шо брендував всій MQTT сервер, тепер я хочу аби мій месенжер можна було запустити на будь якому MQTT брокері який підтримує відповідний ISO стандарт: Mosquitto, NanoMQ, EMQX, VerneMQ, тощо.

Що стосується протоколів які підтримують криптографічний захист, то тут теж індустрію качало від IRC (OTR), XMPP (OTR), SIP, RCS, і тепер я хочу перейти до власного протоколу CHAT який апробований на міжнародній арені з використанням X.509 PKI у якості безпекового стандарту. Будь-які самопальні криптографічні системи які ви бачите в Telegram, Signal, Threema, Matrix — це недолугі хіпстерські підробки які ніколи не зможуть бути впровадженими в EDGE офіс — це мертвонародженні діти психічно хворих людей.

Головний недолік стандартних систем, таких як XMPP і IRC це небінарна природа самого протоколу і пакетного рівня, який не відповідає вимогам, які потрібні в польових умовах, особливо в контексті ведення позиційних воєн. Потрібен протокол, який буде здатен працювати по ненадійних каналах з мінімальною GSM/CDMA ємністю. Головною задачею тут є повна елімінація в сесійному рівні TCP SYN і перенесення сесійного рівня в простір MQTT (тому що навіщо в системі мати два сесійних рівня). Головний недолік бінарних протоколів таких як GPROTO полягає в тому шо не ви їх контролюєте і це просто по великому рахунку нестандартизоване гімно, яке ніхто зі спеціалістів по EDGE офісах не сприймає серйозно. В телекомунікаційній сфері повністю домінують протоколи визначені у формальній нотації ASN.1, а Erlang це єдина промислова мова яка має безкоштовний компілятор цих протоколів, який зробила компанія (Ericsson), яка ніколи не зазнавала падінь протягом всіх фінансових криз які ви застали у своєму житті. На ASN.1 визначені наприклад такі протоколи: Bluetooth, WiFi, LDAP, DNS, SS7, GSM, WiMax, UMTS, SMPP, BGP, AMQP, ETF. Це то шо ви знаєте як Інтернет.

The Protocol

Субпротоколи CHAT обмінюються даними з action/:client, events/:client, devices/:phone, contacts/:roster, private/:roster/:roster топіками MQTT, надсилаючи через них Index, Typing, Search, Feature, Service, Desc, Presence, Friend, Tag, Message, StickerPack, Link, Member, Room, Contact, Start, Ack, Auth, Roster, Profile, History, push, io ETF-серіалізовані повідомлення.

Протокол SYNRC CHAT реалізований у наборі модулів підпротоколу: ФАЙЛ, ІСТОРІЯ, ПОСИЛАННЯ, ПОВІДОМЛЕННЯ, ПРИСУТНІСТЬ, ПРОФІЛЬ, PUSH, КІМНАТА, РОСТЕР, ПОШУК, АУТ. Реалізація сервера CHAT покладається лише на мережеві з'єднання ISO/IETF, такі як DNSSEC, X.509 CSR, LDAP, QUIC, WebSocket, MQTT. Детальний опис апробованого протоколу в багатьох стартапах Європи, Америки та Азії:

   •  CHAT N2O PROTO SPEC Erlang Term Format ETF/BERT через MQTT/QUIC

CHAT — це простий сервер обміну миттєвими повідомленнями на основі стандартів ISO. Він використовує протокол MQTT і бінарну серіалізацію ETF від Erlang/OTP у різних своїх додатках: MQTT, N2O, KVS, MAIL, LDAP, NS, CA. Безпечний за замовчуванням. Додаток CHAT має функції підпису/валідації, шифрування/розшифрування, увімкнені для кожного окремого переданого повідомлення. Доставлені повідомлення видаляються з MQTT серверу після підтвердження прийому кореспондентом, як це було в перших версіях Viber. Це заміна Keybase, OTR, PGP (назвіть ваш стандарт) для безпечних комунікацій, визначених X.509 ASN.1.

Moire Slides

Оскільки я є не тільки підприємцем, але і абсолютним верховним великодушним пожиттєвим диктатором BDFL всіх своїх систем, я відкидаю навіть можливість аутсорсу промоушина рекламним компаніям та дизайн студіям. Оскільки дизайн — це увага до деталей, я хотів би лише шоб кожен дизайнер переглянувши перший слайд презентації зрозумів шо перед ним предстає істота з перевагою і гандікапом. Тому поверх слайду ми наклали шейдер в кращих традиціях Муару та Гільйоша. Всі свої сайти включно з докуентацією ERP.UNO та N2O.DEV я створив сам. Мені не потріен ніхто. Поки ви будете робити сайт, я встигну зробити і сайт і написати книжку на цю тему.

Spring Bubbles

Прикро шо з 2013 року коли Apple представила UI Kit Dynamics в iOS 7 майже не виходило месенжерів зі спрінг баблзами, хоча здавалось би шо вже кожен повинен прототипувати анімації для програмного забезпечення в Adobe Premiere. Хто пише чат месанжер без спрінг баблзів — зразу йде нахуй. До цього часу JSQ залишається єдиним прикладом на Github де ви можете подивитися як це влаштовано. Я потратив деякий час аби передивитися абсолютні всі форки, і переконатися шо ніхто не пішов далі, хоча список чат продуктів побудованих на JSQ вражає. Мені довелося стати топовим iOS розробником і вивчити всі flavours Swift 2.0, 3.0, 5.0, поки я не портував їх всі на Swift 5.8, який доступний вже для Linux, Windows і Mac, і я думаю шо в майбутньому буде доступний і для Android. Це дасть змогу мені 3-4 роки не преживати шо мене хтось дожене.

Я вибрав iOS самістно виключно з причини безпеки, тільки на Apple є криптографічний процесор який навіть якшо вкрадуть телефон на полі бою з нього не зможуть витягнути приватний ключ. Такий рівень захисту звісно є і у SONY Xperia але навряд чи ЗСУ буде закуповувати для солдат ці телефони, а от iPhone SE — це вже дійно бюджений варіант який підходить для армії.

The Product

Оскільки я маю багатий досвід споглядання продакт менеджерів рагулів як в державних компаніях так і в корпоративному секторі, ви можете бути певні, що в мому месенжері не буде ніколи стікерів і іншого роду енгейджментів для дебілів. Він завжди буде виконаний в мінімалістичній естетиці рідних операційних систем. Якшо це iOS це буде Swift, якшо це UNIX це буде X Windows (xt, xlib і GLX 1.3 для шейдерів), якшо це Android це буде найнижчий рівень з можливих. Я єдиний володар цього продукту і пройдисвіти без освіти і етики не будуть мати ніколи доступу до управління цим продуктом.

Шо стосується федеративних протоколів то вони будут відсутні, а засоби безпеки державного рівня будуть здійснюватися за допомогою відкритого протоколу LDAP, де арбітражні органи (такі як РНБО) будуть мати доступ до всіх ієрахій ЄДРПО (МВС, ГУР, СБУ, МЗС, Мінюст, Мінфін).

Апаратно-програмний комплекст буде завжди виконаний в найсучаснішому обладнанні. На сьогоднішній момент це NVMe дискові підсистеми класу PCIe 5.0 з ECC RAM на найсучасніших платах. Це всьо буде працювати під операційною системою NetBSD з її стемою віртуалізіції NVMM та файловою системою ZFS.

Висновки

Неосвічена людина без освіти та етики не може здійснювати диктат, це можуть робити тільки благородні люди. Не ви диктуєте Сохацькому правла гри, а він про них розказує вам. Ви лише можете вклонитися йому в ноги, віддати останні гроші і не мішати працювати. Можливо він і захоче залишите ваше імʼя в історії своїх продуктів.